%%
% 提取sift特征
% 准备
clear;clc;close all;
% 读取图片的准备
indexs=0:999;
pakageNum=10;
indexsLen=length(indexs);
% 图片下标向量的index
m=1;

%%
% 提取sift特征
% -------------------------注释：提取特征有点慢，每次调包提取出来的特征数量都一样，索性存下来了-------------
% 提取到的特征和每张图提取到的特征的数量
siftFeatures=[];
siftIndexs=[];
for i=0:pakageNum-1
    for j=1:ceil(indexsLen/pakageNum)
        % 读取图片   
        imgname=['E:\XDU-6\多媒体数据处理\third\corel\corel\',num2str(i),'\',num2str(indexs(m)),'.jpg'];
        m=m+1;
        img=imread(imgname);
        % 转灰度图
        img=rgb2gray(img);
        % 提取sift特征
        [f, d] = vl_sift(single(img));
        d=d';
        siftIndexs=[siftIndexs,size(d,1)];
        siftFeatures=[siftFeatures;d];
        % 返回值中f第1、2行表示的是特征点的xy坐标，第三行是尺度，第四行是方向
        % d表示的是特征点的描述子
    end
end

%%
% 保存sift特征和每张图的sift特征数的累计值
siftFeatures=double(siftFeatures);
% clear 
% save('siftFeatures.mat');